//==========================================================================
/**
* @file	  : GUIWindow.h
* @author : cpzhang <chengpengzhang@gmail.com>
* created : 2010-5-2   22:43
* purpose : 
*/
//==========================================================================

#ifndef __GUIWindow_h__
#define __GUIWindow_h__

//
#include "Common.h"

//
namespace Aurora
{
	class _AURORA_EXPORT_ GUIWindow
	{
	public:
		GUIWindow();
		~GUIWindow();

		//
	public:
		//
		void render();

		//
		void renderSelf();

		//
		void addChild(GUIWindow* child);

		//
		void setParent(GUIWindow* parent);

		//
		std::string getName();

		//
		void removeChild(std::string name);

		//
		bool isVisible();

		// 
		void setVisible(bool visible);

		//
	protected:
		//
		typedef std::map<std::string, GUIWindow*>	Children;
		Children		_children;

		//
		GUIWindow*		_parent;

		//
		std::string		_name;

		//
		bool			_visible;
	};
}

#endif // __GUIWindow_h__
 
